
\section{Technical Internals}

{
\tikzset{external/figure name/.add={}{techinternals_}}

This section describes keys which are usually set by internal routines -- it is
typically unnecessary to use them. However, they may impose limitations or
influence performance. Such cases are documented clearly in other sections of
this manual. This here is the reference on the involved internals.

\begin{pgfplotskey}{cell picture=\mchoice{true,false,if necessary} (initially true)}
    This key is set automatically by \PGFPlots{} if necessary (for example by
    |set layers|).

    Typically, \PGFPlots{} creates a so-called ``cell picture''. A cell picture
    is a separate picture which is typeset into a node. Finally, the node is
    shifted to fulfill special |anchor| requirements. The necessity for a cell
    picture is given if the |anchor| of an axis is only known after the
    complete axis has been drawn.

    The initial choice \declaretext{true} means that \PGFPlots{} will create a
    cell picture for every axis. This allows all |anchor|s, but it is unsuited
    if multiple graphics layers are desired or if one wants SVG export. In
    order to create a cell picture, \PGFPlots{} interrupts the embedding
    |tikzpicture|, draws a new |tikzpicture|, and finally typesets the result
    into a node.

    The choice \declaretext{false} tells \PGFPlots{} to draw its paths directly
    into the embedding |tikzpicture|. Such an approach is necessary if the axis
    shall use layers of the embedding |tikzpicture|. This is possible if and
    only if the |anchor| can be determined without actually drawing the
    complete axis. If so, \PGFPlots{} will modify the transformation matrix in
    advance. Note that axes with |cell picture=false| will \emph{contain} all
    the usual anchors -- the only difference is that the axis itself can only
    use one of the following anchors for its alignment: |north|, |north west|,
    |west|, |south west|, |south|, |south east|, |east|, |north east|, |north|,
    |center|, |origin|, |above origin|, |left of origin|, |right of origin|,
    |below origin|.

    The choice \declaretext{if necessary} will check if the chosen anchor is
    one of the list above. If so, it will use |cell picture=false|. Otherwise,
    it will use |cell picture=true|.
\end{pgfplotskey}

\begin{pgfplotskey}{compat/show suggested version=\mchoice{true,false} (initially true)}
    If enabled, \PGFPlots{} will show you which value for
    |compat=|\meta{version} results in the largest active feature set and
    highest quality.

    This key will generate a warning if the current version is so old that the
    quality degrades seriously.

    The notification will be printed to your |.log| file (during
    |\end{document}|).
\end{pgfplotskey}

\begin{pgfplotskey}{enable tick line clipping=\mchoice{true,false} (initially false)}
    This is compatibility code to ensure that files generated by |compat=1.10|
    or earlier use

    |enable tick line clipping=true|.

    There is no need to modify this setting. Please write |compat=...| in your
    preamble instead.
\end{pgfplotskey}
}
